home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / bbs / av077wb3.zip / AVALON.ZIP / STRUCTS.PAS < prev   
Pascal/Delphi Source File  |  1997-03-29  |  13KB  |  214 lines

  1. {
  2.             ████████┐ ██┐   ██┐ ████████┐ ██┐       ██████┐  ███┐  ██┐
  3.             ██┌───██│ ██│   ██│ ██┌───██│ ██│      ██┌───██┐ ████┐ ██│
  4.             ████████│ ██│   ██│ ████████│ ██│      ██│   ██│ ██┌██┐██│
  5.             ██┌───██│ └██┐ ██┌┘ ██┌───██│ ██│      ██│   ██│ ██│└████│
  6.             ██│   ██│  └████┌┘  ██│   ██│ ███████┐ └██████┌┘ ██│ └███│
  7.             └─┘   └─┘   └───┘   └─┘   └─┘ └──────┘  └─────┘  └─┘  └──┘
  8.  
  9. { - Avalon Data File Structures                                                }
  10. { - Avalon is (C) 1997, Devon Brooks, of BFS                                   }
  11. { - Feel free to distribute to everyone!                                       }
  12. { - Create EGO's, Utilities, and more for Avalon!                              }
  13.  
  14. { Hello friend!                                                                }
  15.  
  16. { I'm preparing this information file to help others in created 3rdParty stuff }
  17. { for Avalon.  Feel free to charge anything you wish for your program(s) -- as }
  18. { we do not charge any type of "royalty" fee on 3rdParty products.             }
  19.  
  20. { NOTE - These structs and the following information is based on a programming }
  21. {        language called "Turbo Pascal". If you do not have this language, you }
  22. {        will have to somehow convert these records into your own format.      }
  23.  
  24. { Hey, you want to write an EGO?  Excellent!  It is really quite simple.  It's }
  25. { basically a three step process, like this:                                   }
  26. {                     1. Read in AVINFO.<x>, where <x> is the node number of   }
  27. {                        the current online user.                              }
  28. {                     2. Load up the PLAYER.DAT file, and find the player name }
  29. {                        that matches the name in the AVINFO.<x> file.         }
  30. {                     3. That's it!  You're on your way -- start your program! }
  31.  
  32. { In an update to Avalon soon, we will try to include some sort of EGO devel-  }
  33. { opment kit to assist those who're experiencing troubles with their program   }
  34. { or programs.  Well, for now, though, you're on your own. <g>  Here are a few }
  35. { tips we've tossed around over the past few months which might help you in    }
  36. { getting your program(s) off the ground:                                      }
  37.  
  38. { 1. Download a copy of the latest version of DDPlus - DDPLUS71.ZIP. It should }
  39. {    be available from almost any BBS system in your area, or somewhere on the }
  40. {    Internet.  We used DDPlus to create Avalon.  It is a simple to use kit    }
  41. {    which should easily take care of most of your problems with your program. }
  42. { 2. To trap errors in your program I suggest using a Unit that is included in }
  43. {    the DDPLUS71.ZIP Archive - ELOG.PAS. It will trap and log all errors that }
  44. {    might occur in your program, and will help you in finding the cause.      }
  45. { 3. Ask one of your friends who knows TP, or someone in the FidoNet Echo, for }
  46. {    a procedure which will save bad error exits.  What this means is that if, }
  47. {    for some reason, your program has an error and halts - it will not save a }
  48. {    user's new information.   With a procedure/function at the end to save no }
  49. {    matter what type of an exit, your program will run much smoother, regard- }
  50. {    less of what happens while inside the program.  If you cannot find such a }
  51. {    procedure/function, contact Devon Brooks, the Author, and he might be     }
  52. {    able to give you the same procedure that is used to trap exits in Avalon. }
  53. { 4. There is nothing more that we can really help you out in.    Turbo Pascal }
  54. {    programming experience would be nice - but, the Avalon Author started his }
  55. {    first program in Turbo Pascal when he had NO previous experience.   Thus, }
  56. {    even if you have never looked at TP before you can learn it quite easily. }
  57. {    If you want some assistance from the Avalon Author, feel free to contact  }
  58. {    him anytime.  There are a few different ways, as listed in CONTACT.DOC,   }
  59. {    which would be included in the same archive of which you found this file. }
  60.  
  61. { All user variables in PLAYER.DAT are commented here for your convenience.    }
  62.  
  63. Type UserRecord = Record
  64.  
  65. Real_Name       : String[40];   { Player's Real Name from the BBS        }
  66. Alias           : String[15];   { User's game Alias in Avalon            }
  67. Date            : String[20];   { Date Flag -- User's last online date   }
  68. Arrived_At      : String[10];     { Time player entered (military time)    }
  69. TimesOn         : Byte;         { # of times this player played Avalon   }
  70. Time_Zone       : Byte;         { Current Time Zone (1 = Medieval,
  71.                                   2 = Present, 3 = Future, 4 = Avalon)   }
  72. Char_Class      : Byte;         { Players Character Class (1 = Warrior,
  73.                                   2 = Necromancer, 3 = Thief)            }
  74. Companion       : String[20];   { Current Companion of this character    }
  75. Hand            : LongInt;      { Currency on Hand                       }
  76. Bank            : LongInt;      { Currency held in the Bank              }
  77. Bank_Ban        : Byte;         { How many days user cannot enter Bank   }
  78. Bank_Rob        : Boolean;      { Has user robbed bank already today?    }
  79. Gender          : Byte;         { Player Gender (1 = Male, 2 = Female)   }
  80. Online          : Boolean;      { If TRUE, player is currently online    }
  81. Str             : Integer;      { Character's Strength Meter             }
  82. Def             : Integer;      { Character's Defense Meter              }
  83. Dex             : Integer;      { Character's Dexterity Meter            }
  84. Wisdom          : Integer;      { Character's Wisdom Meter               }
  85. Know            : Integer;      { Character's Knowledge Meter            }
  86. HP              : Integer;      { Character's Current Health Points      }
  87. HP_Max          : Integer;      { Character's Maximum Health Points      }
  88. MP              : Integer;      { Character's Current Magik Points       }
  89. MP_Max          : Integer;      { Character's Maximum Magik Points       }
  90. Weapon_Name     : String[20];   { Current Weapon Name                    }
  91. Weapon_Num      : Byte;         { Weapon Number (1..10)                  }
  92. Armour_Name     : String[20];   { Current Armour Name                    }
  93. Armour_Num      : Byte;         { Armour Number (1..10)                  }
  94. Charisma        : Integer;      { Just general good looks meter <g>      }
  95. EXP             : LongInt;      { Character's Experience Points          }
  96. Level           : Integer;      { Current Level the character is on      }
  97. Sleep           : Byte;         { Where player is sleeping (1 = Plains,
  98.                                   2 = Inn, 3 = In an EGO)                }
  99. Invested        : LongInt;      { Initial amount which was invested      }
  100. Projected       : LongInt;      { Projected return on an investment      }
  101. Invest_Date     : String[20];   { Date on which the investment was made  }
  102. Invest_Time     : Byte;         { How many days the investment was for   }
  103. Status          : Byte;         { Player Status (1 = Alive, 2 = Dead)    }
  104. On_Today        : Boolean;      { Has this user been on already today?   }
  105. Arrows          : Integer;      { (NOT USED YET) Arrows on hand (Quiver) }
  106. WS_Haggle       : Boolean;      { Has user haggled in Weapon Shop?       }
  107. AS_Haggle       : Boolean;      { Has user haggled in Armour Shop?       }
  108. Mentor_Fought   : Boolean;      { Has user fought their Mentor today?    }
  109. P_Fights        : Integer;      { Player Fights remaining for today      }
  110. M_Fights        : Integer;      { Monster Fights remaining for today     }
  111. Potions         : Integer;      { Healing Potions on this character      }
  112. Elixir          : Boolean;      { Has user bought an Elixir today?       }
  113.  
  114. End;
  115.  
  116. { Here is the format of the Ownership Data File (PROPERTY.DAT).                }
  117.  
  118. ShopData = Record
  119.  
  120. Owner           : String[20];   { Name of the owner of the property      }
  121. Price           : LongInt;      { Price for another character to buy it  }
  122.  
  123. End;
  124.  
  125. { Below is the format for the Mentors in Avalon (MENTORS.DAT).                 }
  126.  
  127. MentorData = Record
  128.  
  129. Name            : String[20];   { Mentor's Name                          }
  130. Str             : Integer;      { Strength of attack from Mentor         }
  131. Def             : Integer;      { Defensive skill of Mentor              }
  132. Exp             : LongInt;      { Exp req. for user to fight Mentor      }
  133. HP              : Integer;      { Health Points of Mentor                }
  134.  
  135. End;
  136.  
  137. { And, the Monster Data File is below (MONSTERS.DAT).                          }
  138.  
  139. MonData = Record
  140.  
  141. Name            : String[20];   { Name of the Monster                    }
  142. Str             : Integer;      { Strength of the Monster's Attack       }
  143. Exp             : LongInt;      { Experience reward when defeated        }
  144. HP              : Integer;      { Health Points of the Monster           }
  145. Gold            : LongInt;      { Currency reward when defeated          }
  146.  
  147. End;
  148.  
  149. { Here we have the SNI Bank of Riches Guard Data File (SNIBANK.DAT).           }
  150.  
  151. GuardData = Record
  152.  
  153. Name            : String[15];   { Name of the user who is has Guard Job  }
  154.  
  155. End;
  156.  
  157. { And...finally, here is the format of the 3rd-Party EGO Data File (EGOS.DAT). }
  158.  
  159. EGOData = Record
  160.  
  161. EGO_Name   : String[40];        { Name of the EGO in this slot           }
  162. EGO_Path   : String;            { Path to the executable of the EGO      }
  163.  
  164. End;
  165.  
  166. { SOME INFORMATION REGARDING EGO DEVELOPMENT:                                  }
  167. { We at BFS want to stress the importance of following the set guidelines for  }
  168. { EGO developers.  When creating your EGO, keep these points in mind:          }
  169. {                             1. A Maximum of 10 EGO's can be in the EGOS.DAT  }
  170. {                                file.  When installing your EGO, check to see }
  171. {                                if 10 EGO's are already installed, to prevent }
  172. {                                possible mix-ups.                             }
  173. {                             2. Please have an option for an uninstall of     }
  174. {                                your EGO.  This must take out ALL the info    }
  175. {                                that your installation procedure entered into }
  176. {                                the EGOS.DAT file.                            }
  177. {                             3. One thing to remember upon installation of    }
  178. {                                your EGO is to check if it's already been     }
  179. {                                installed.  Always a good thing.              }
  180. { That's it!  Or, at least, that's all we can think of at this point.  To get  }
  181. { your EGO/Utility/3rdParty product on the list in EGOLIST.TXT, refer to the   }
  182. { bottom of that file for more information.                                    }
  183.  
  184. { Upon Avalon's exit to run an EGO, AVINFO.<x> is created, where <x> is the    }
  185. { node number that the user is on.  AVINFO.<x> is a drop file.  As your EGO is }
  186. { loading up, if need be, you might want to read in the AVINFO.<x> file. Below }
  187. { is the format for this file:                                                 }
  188.  
  189. {      Line 1 ---> Record Number of the user in the PLAYER.DAT file            }
  190. {      Line 2 ---> Graphics Code.  3 = ANSI Graphics, else ASCII.              }
  191. {      Line 3 ---> Time remaining online                                       }
  192. {      Line 4 ---> ROK Alias of the character                                  }
  193. {      Line 5 ---> First *REAL* Name of the user                               }
  194. {      Line 6 ---> Last *REAL* Name of the user                                }
  195. {      Line 7 ---> Com Port the modem is running on                            }
  196. {      Line 8 ---> Actual Baud Rate                                            }
  197. {      Line 9 ---> Locked Baud Rate                           }
  198.  
  199. { That is the format of the AVINFO.<x> file.  A 9-Line drop file format.       }
  200.  
  201. { Well, that's all of them!  As mentioned above, if you require assistance in  }
  202. { regards to the structs shown here, please feel free to contact us anytime.   }
  203.  
  204. { Please refer to the EGOLIST.TXT file, included in this archive, for more EGO }
  205. { and other 3rdParty related products. For your product to be recognized by us }
  206. { in the EGOLIST.TXT, you must receive the "BFS Stamp of Approval".  More info }
  207. { is given at the bottom of EGOLIST.TXT.                                       }
  208.  
  209. { Best of luck to you and your program(s) from all of us at BFS!               }
  210. {                                                           - The BFS guys     }
  211.  
  212. Begin
  213. End.
  214.